Wireless incentive system for vehicle users

ABSTRACT

The disclosure includes a method for determining, based on vehicle sensor data associated with a vehicle, a current vehicle condition associated with the vehicle that is detrimental to operation of the vehicle and receiving a condition message that includes mitigating action plan data describing one or more steps configured to alter the current vehicle condition, the mitigating action plan data including an offer fulfillment location included in a route of a journey for the vehicle.

PRIORITY CLAIM

The application is a continuation-in part of U.S. patent applicationSer. No. 15/253,869 entitled “Wireless Incentive System for VehicleUsers” and filed on Sep. 1, 2016, which is a continuation of U.S. Pat.No. 9,477,970 entitled “Wireless Incentive System for Vehicle Users” andfiled on Dec. 19, 2014, the entirety of which is hereby incorporated byreference.

BACKGROUND

The specification relates to determining mitigating action plan data tocorrect a current vehicle condition associated with a vehicle that isdetrimental to operation of the vehicle.

Vehicles are frequently in need of a service to continue operating. Forexample, vehicles with combustion systems may run out of gas. Inaddition, vehicles may need to be serviced to correct a mechanicalfailure. If a driver is not able to locate a vehicle service providerfast enough, the need for a service may present a safety hazard becausecontinuing to drive a vehicle with a problem may result in the driverlosing control of the vehicle.

It is difficult for a driver to determine an appropriate vehicle serviceprovider because of the abundance of vehicle service providers and thedifficulty in locating a vehicle service provider while driving. Someapplications are available to provide a list of nearby vehicle serviceproviders; however, these lists fail to organize the data in a helpfulway other than to identify a distance between the vehicle and acorresponding service provider.

SUMMARY

According to one innovative aspect of the subject matter described inthis disclosure, a method includes determining, based on vehicle sensordata associated with a vehicle, a current vehicle condition associatedwith the vehicle that is detrimental to operation of the vehicle andreceiving a condition message that includes mitigating action plan datadescribing one or more steps configured to alter the current vehiclecondition, the mitigating action plan data including an offerfulfillment location included in a route of a journey for the vehicle.

These and other implementations may each optionally include one or moreof the following operations and features. In some embodiments, themethod may further include transmitting the vehicle sensor data to a setof vehicle service providers with a request for information, receivinginformation about each of the set of vehicle service providers, andselecting the offer fulfillment location from the set of vehicle serviceproviders based on the information about each of the set of vehicleservice providers. In some embodiments, the information about each ofthe set of vehicle service providers includes a determination aboutwhether each of the set of vehicle service providers is equipped to fixthe current vehicle condition and a wait time associated with each ofthe set of vehicle service providers. In some embodiments, the methodmay further include determining turn-by-turn navigation instructionsbased on the mitigating action plan data and user input indicating thata user accepts the one or more steps of the mitigating action plan dataand providing the turn-by-turn navigation instructions during thejourney from a current location to the offer fulfillment location,wherein the journey includes a start point and end point determinedprior to receipt of the mitigating action plan and the mitigating actionplan is configured so that the offer fulfillment location is between thestart point and the end point. In some embodiments, the method mayfurther include determining the journey for the vehicle based on a mostfrequently traveled route for a current location at a current time. Insome embodiments, the method may further include automaticallynavigating the vehicle to the offer fulfillment location. In someembodiments, the method further includes responsive to detecting thepresence of the vehicle that is paired with the mobile computing device,determining that the journey begins. In some embodiments, the vehicledetects a presence of a mobile computing device that is paired with thevehicle and determining the current vehicle condition is performed bythe vehicle. In some embodiments, the method further includes providingauthentication data to the vehicle to authenticate that the mobilecomputing device is authorized to receive the current vehicle conditionfrom the vehicle. In some embodiments, the vehicle detects the presenceof the mobile computing device using direct point-to-point wirelesscommunication between the vehicle and the mobile computing deviceassociated with a user. In some embodiments, the method further includessending fulfillment transaction data to a condition message provider. Insome embodiments, the method further includes registering a user,including importing information from at least one of a social networkaccount associated with the user and an online calendar accountassociated with the user. In some embodiments, determining the journeyfor the vehicle is further based on the information from the at leastone of the social network account associated with the user and theonline calendar account associated with the user.

In general, another innovative aspect of the subject matter described inthis disclosure may be embodied in a non-transitory computer-readablemedium having computer instructions stored thereon that are executableby a processing device to perform or control performance of operationscomprising: determining, based on vehicle sensor data associated with avehicle, a current vehicle condition associated with the vehicle that isdetrimental to operation of the vehicle and receiving a conditionmessage that includes mitigating action plan data describing one or moresteps configured to alter the current vehicle condition, the mitigatingaction plan data including an offer fulfillment location included in aroute of a journey for the vehicle.

These and other implementations may each optionally include one or moreof the following operations and features. In some embodiments, theoperations may further include transmitting the vehicle sensor data to aset of vehicle service providers with a request for information,receiving information about each of the set of vehicle serviceproviders, and selecting the offer fulfillment location from the set ofvehicle service providers based on the information about each of the setof vehicle service providers. In some embodiments, the operations mayfurther include determining turn-by-turn navigation instructions basedon the mitigating action plan data and user input indicating that theuser accepts the one or more steps of the mitigating action plan dataand providing the turn-by-turn navigation instructions during thejourney from a current location to the offer fulfillment location. Insome embodiments, the operations may further include determining thejourney for the vehicle based on a most frequently traveled route for acurrent location at a current time. In some embodiments, the operationsmay further include displaying the mitigating action plan data on adisplay of a mobile computing device associated with a user of thevehicle and the mobile computing device, responsive to the vehiclearriving at the offer fulfillment location, receiving graphical datathat displays a barcode, and displaying the barcode on the display ofthe mobile computing device.

In general, another innovative aspect of the subject matter described inthis disclosure may be embodied in systems that include: a vehiclecomprising a vehicle status application stored on an onboard computer ofthe vehicle, the vehicle status application including instructions that,when executed, cause the vehicle status application to determine, basedon vehicle sensor data associated with a vehicle, a current vehiclecondition associated with the vehicle that is detrimental to operationof the vehicle and receive a condition message that includes mitigatingaction plan data describing one or more steps configured to alter thecurrent vehicle condition, the mitigating action plan data including anoffer fulfillment location included in a route of a journey for thevehicle.

The disclosure is particularly advantageous in a number of respects. Forexample, an offer fulfillment location is determined that will fix thecurrent vehicle condition associated with the vehicle that isdetrimental to operation of the vehicle. As a result, the functioning ofthe vehicle is improved and the safety of the driver is ensured. Second,the disclosure describes multiple ways to ensure that the vehicle safetygets to the offer fulfillment location, including by generatingturn-by-turn navigation instructions or by automatically navigating thevehicle to the offer fulfillment location.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure is illustrated by way of example, and not by way oflimitation in the figures of the accompanying drawings in which likereference numerals are used to refer to similar elements.

FIG. 1 is a block diagram illustrating an example system for mitigatingaction plan data to correct a current vehicle condition associated witha vehicle that is detrimental to operation of the vehicle.

FIG. 2 is a block diagram illustrating an example vehicle device.

FIG. 3 is a block diagram illustrating an example mobile computingdevice.

FIG. 4A is a graphic representation of an example user interface fordisplaying offer data that includes a fuel offer reward.

FIG. 4B is a graphic representation of an example user interface fordisplaying offer data that includes a coupon.

FIG. 5 is a flowchart of an example method for generating a wirelessincentive by displaying mitigating action plan data and offer data.

FIG. 6 is a flowchart of another example method for generating awireless incentive.

DETAILED DESCRIPTION Example System Overview

FIG. 1 is a block diagram illustrating an example system 100 formitigating action plan data to correct a current vehicle conditionassociated with a vehicle that is detrimental to operation of thevehicle. The system 100 includes a vehicle 103, a mobile computingdevice 188, a social network server 109, a calendar server 111, a secondserver 198, a cloud server 113, a condition message provider 101, and anoffer fulfillment location device 107. The vehicle 103 and the mobilecomputing device 188 can be accessed by users 125 a and 125 b (alsoreferred to herein individually and collectively as “user 125”), viasignal lines 122 and 124, respectively. In the illustrated example,these entities of the system 100 may be communicatively coupled via anetwork 105.

The vehicle 103 and the mobile computing device 188 in FIG. 1 can beused by way of example. While FIG. 1 illustrates a single vehicle 103and a single mobile computing device 188, the disclosure applies to asystem architecture having one or more vehicles 103 and one or moremobile computing devices 188. Furthermore, although FIG. 1 illustratesone network 105 coupled to the vehicle 103, the mobile computing device188, the cloud server 113, the condition message provider 101, thesocial network server 109, the calendar server 111, the second server198, and the offer fulfillment location device 107, in practice one ormore networks 105 can be connected. While FIG. 1 includes one cloudserver 113, condition message provider 101, social network server 109,calendar server 111, second server 198, and offer fulfillment locationdevice 107, the system 100 could include one or more cloud servers 113,condition message providers 101, social network servers 109, calendarservers 111, second servers 198, and offer fulfillment location devices107.

The network 105 can include a conventional type, wired or wireless, andmay have numerous different configurations including a starconfiguration, token ring configuration, or other configurations.Furthermore, the network 105 may include a local area network (LAN), awide area network (WAN) (e.g., the Internet), or other interconnecteddata paths across which multiple devices may communicate. In someimplementations, the network 105 may include a peer-to-peer network. Thenetwork 105 may also be coupled to or include portions of atelecommunications network for sending data in a variety of differentcommunication protocols. In some implementations, the network 105includes Bluetooth® communication networks or a cellular communicationsnetwork for sending and receiving data including via short messagingservice (SMS), multimedia messaging service (MMS), hypertext transferprotocol (HTTP), direct data connection, wireless application protocol(WAP), e-mail, etc. In some implementations, the network 105 may includea global positioning system (GPS) satellite for providing GPS navigationto the vehicle 103 or the mobile computing device 188. The network 105may include a mobile data network for example, 3G, 4G, long-termevolution (LTE), Voice-over-LTE (“VoLTE”), or other mobile data networkor combination of mobile data networks.

The vehicle 103 can be a mobile client device with a battery system. Forexample, the vehicle 103 can be an automobile, a bus, a motorcycle, oranother mobile system including non-transitory computer electronics anda battery system. In some implementations, the vehicle 103 may include acomputing device that includes a memory and a processor. In theillustrated example, the vehicle 103 is communicatively coupled to thenetwork 105 via signal line 108.

The vehicle 103 includes a vehicle status application 199. The vehiclestatus application 199 may include codes and routines for receivingvehicle sensor data associated with the vehicle and determining acurrent vehicle condition that is detrimental to operation of thevehicle based on the vehicle sensor data. For example, the vehiclestatus application 199 may receive vehicle sensor data about the amountof gas remaining in the vehicle 103. The status application 199 maydetermine that the vehicle 103 is going to run out of gas in less thanfive miles based on the vehicle sensor data.

The mobile computing device 188 may be a portable computing device thatincludes a memory and a processor, for example, a removable in-dashdevice, a laptop computer, a tablet computer, a mobile telephone, apersonal digital assistant (PDA), a mobile e-mail device, a smartwatch,a portable game player, a portable music player, or other portableelectronic device capable of accessing the network 105. The mobilecomputing device 188 may access the network 105 via signal line 118. Insome implementations, the mobile computing device 188 may include aprocessor-based computing device.

The mobile computing device 188 includes a journey application 190. Thejourney application 190 includes code and routines that may beconfigured to receive a current vehicle condition from the vehiclestatus application 199 via signal line 187. For example, the journeyapplication 190 communicates with the vehicle status application 199using Bluetooth®. Alternatively, the journey application 190 may receivevehicle sensor data from the vehicle status application 199 anddetermine the current vehicle condition. The journey application 190 maydetermine a journey for the vehicle 103. For example, the journeyapplication 190 may determine that the vehicle 103 is travelling to workbased on historical journey data that includes a most frequentlytraveled route for a current location of the vehicle at a current time.

The journey application 190 transmits a description of the currentvehicle condition to a condition message provider 101. The journeyapplication 190 may also transmit journey data to the condition messageprovider 101. The journey application 190 receives a condition messagefrom the condition message provider 101 that includes offer data andmitigating action plan data describing one or more steps configured toalter the current vehicle condition. The offer data may include an offerfor a free soda at the gas station. The mitigating action plan data mayinclude, for example, a location of the gas station.

The mobile computing device 188 may display the mitigating action plandata and the offer data on a display of the mobile computing device 188.In some implementations, after the mobile computing device 188 is nearan offer fulfillment location, the mobile computing device 188 displaysa coupon. For example, the coupon may include a barcode.

In some implementations, user 125 a and user 125 b can be the same user125 interacting with both the vehicle 103 and the mobile computingdevice 188. For example, the user 125 can be a driver sitting in thevehicle 103 (e.g., a vehicle) and operating the mobile computing device188 (e.g., a smartphone). In some other implementations, the user 125 aand the user 125 b may be different users 125 that interact with thevehicle 103 and the mobile computing device 188, respectively. Forexample, user 125 a could be a driver that drives the vehicle 103 anduser 125 b could be a passenger that interacts with the mobile computingdevice 188. As a result, the user 125 b that redeems the coupon at theoffer fulfillment location may be different from the user 125 a thatdrives the vehicle 103.

In some implementations, the cloud server 113 includes journey data 114that the journey application 190 may use to determine a journey for thevehicle 103. The cloud server 113 may serve as cloud storage for thejourney application 190 and may store all historical journeys taken bythe vehicle 103. Alternatively, the cloud server 113 may includejourneys taken by multiple vehicles 103. For example, the journey data114 may include journeys taken by any vehicle 103 that are used todetermine frequently traveled routes. The cloud server 113 maycommunicate with the network 105 via signal line 115.

The social network server 109 can include a hardware server thatincludes a processor, a memory, and network communication capabilities.The social network server 109 may include a social network application.The social network application may generate a social network and thesocial network data 110. For example, the social network may includeFacebook™, Google+™, LinkedIn™, Tinder™, Mixi™, Tencent QQ™, or Renren™.

The social network server 109 may transmit the social network data 110to the journey application 190. The journey application 190 may use thesocial network data 110 to determine an endpoint for the journey. Forexample, the social network data 110 may include a post from a user 125stating that the user is travelling to Mountain View, Calif. The journeyapplication 190 determines that the journey includes travelling toMountain View, Calif. The social network server 109 may communicate withthe network 105 via signal line 125.

The calendar server 111 can include a hardware server that includes aprocessor, a memory, and network communication capabilities. Thecalendar server 111 may include a calendar application. The calendarapplication may generate an electronic calendar and the calendar data112. For example, the calendar application may include Google™ Calendar,Microsoft Outlook™, or Apple™ Calendar.

The calendar server 111 may transmit the calendar data 112 to thejourney application 190. The journey application 190 may use thecalendar data 112 to determine an endpoint for the journey. For example,the calendar data 112 may include a business meeting at Company X inMenlo Park, Calif. The journey application 190 determines that thejourney includes travelling to Company X in Menlo Park, Calif. Thecalendar server 111 may communicate with the network 105 via signal line127.

The second server 198 can include a hardware server that provides datato the journey application 190, the vehicle 103, or the vehicle statusapplication 199. The second server 198 can include an infotainmentserver for providing infotainment, a music server for providingstreaming music services, a traffic server for providing traffic data, amap server for providing map data, a weather server for providingweather data, a power service server for providing power usage service(e.g., billing service), or a health server for providing healthinformation. For example, the map server can provide map data to thejourney application 190 for determining a route of the journey. Thesecond server 198 may communicate with the network 105 via signal line197.

The second server 198 may host and/or generate websites that provide oneor more of the following network services: navigation instructions;streaming audio or video (for example, Pandora™, Spotify™, iTunes™,Google Play™, YouTube™, Netflix™, Hulu Plus™ Crackle™, Amazon™ InstantVideo, Prime Instant Video, Digital Music Store, Prime Music App Store,etc.); microblogging (for example, Twitter™, Tumblr™, etc.); onlinechatting (for example, Google Chat™, Snapchat™, WhatsApp™, etc.); onlinecontent sharing (for example, Instagram™, Pinterest™, etc.); e-mail (forexample, Gmail™, Outlook™, Yahoo! Mail™, etc.); file sharing (forexample, Dropbox™, Google Drive™, MS OneDrive™, Evernote™, etc.); andhealth data sharing (for example, Fitbit™, Jawbone™, Nike+ Fuelband,etc.). In some implementations, a user may consume one or more of thesenetwork's services via an infotainment system of the vehicle.

The second server 198 may transmit data to the journey application 190.The journey application 190 may use the data to determine an endpointfor the journey. For example, the data may include an e-mail to a friendthat discusses meeting in San Jose at a coffee house for coffee. Thejourney application 190 may determine the location of the coffee houseas the endpoint of the journey.

The condition message provider 101 includes a datastore 102 and anadvertisement selection application 104. The condition message provider101 may communicate with the network 105 via signal line 129.

The datastore 102 may include a list of offer fulfillment locations,offer data that includes offers for goods or services that the offerfulfillment locations provide, coupons, user identifiers (IDs), vehicleIDs, mobile IDs, access information for the users' social networkapplications and calendar applications, vehicle conditions, a currenttime and historical journey data for the users 125, and a purchasehistory associated with each user 125.

The advertisement selection application 104 receives a current vehiclecondition from the journey application 190. The advertisement selectionapplication 104 may also receive journey data 114 from the journeyapplication 190 or the cloud server 113. For example, the advertisementselection application 104 receives information about how the vehicle 103is low on gas and a journey that the vehicle 103 is taking.

The advertisement selection application 104 determines the locations ofoffer fulfillment locations that are on a route of the journey. In someimplementations the offer fulfillment locations are visible from theroute of the journey. In other implementations, the offer fulfillmentlocations may be within a certain distance from the route, for example,within 200 feet. Where multiple offer fulfillment locations are locatedalong a route of the journey, the advertisement selection application104 may conduct an auction where the offer fulfillment locations bid forthe right to send an offer to the journey application 190. Theadvertisement selection application 104 may determine the winner of theauction based on the highest price paid for the right to send the offerto the journey application 190 or the best offer for the user 125 (e.g.,an offer with the highest monetary value).

In some implementations, the advertisement selection application 104 mayreceive social network data 110 from the social network server 109 thatcan be used to determine an offer for the user 125. For example, thesocial network data 110 may include user preferences about favoritesnack foods for the user 125. The advertisement selection application104 may use the user preference to create an offer for a free candy bar.

The advertisement selection application 104 may receive calendar data112 from the calendar server 111 that can be used to determine an offerfor the user 125. For example, if the calendar data 112 includes adentist appointment, the user 125 may be more interested in receiving afree pack of xylitol gum than a free soda because the xylitol gum isbetter for dental health. The advertisement selection application 104may charge more for advertisements that are based on social network data110 and the calendar data 112 because the information is morepersonalized and more likely to result in the user visiting the offerfulfillment location.

The advertisement selection application 104 may transmit a conditionmessage to the mobile computing device 188 that includes offer data andmitigating action plan data describing one or more steps configured toalter the current vehicle condition. The mobile computing device 188 maydisplay the offer data on a display of the mobile device. If the vehicle103 proceeds to the offer fulfillment location, once the vehicle 103arrives at the offer fulfillment location, the advertisement selectionapplication 104 may transmit graphical data for displaying a coupon thatincludes a barcode on the display of the mobile computing device 188.

In some implementations, the advertisement selection application 104includes additional information about the offer fulfillment location.For example, where the current vehicle condition is a vehicle 103 thatis low on gas, the advertisement selection application 104 may transmita condition message that includes a location of a gas station and theprice of gas at the gas station. In another example, the advertisementselection application 104 may transmit a condition message that includesa wait time for receiving service at the offer fulfillment location.

In some implementations, the advertisement selection application 104 canbe implemented using hardware including a field-programmable gate array(“FPGA”) or an application-specific integrated circuit (“ASIC”). In someother implementations, the vehicle status application 199 can beimplemented using a combination of hardware and software. The vehiclestatus application 199 may be stored in a combination of the devices andservers, or in one of the devices or servers.

The offer fulfillment location device 107 can include a processor, amemory, and network communication capabilities. The offer fulfillmentlocation device 107 may receive a request for information directly froma vehicle 103 or from the condition message provider 101. The requestfor information may include vehicle sensor data, an identification ofthe current vehicle condition that is detrimental to the vehicle, arequest for confirmation that the offer fulfillment location is equippedto fix the current vehicle condition, and a request for an estimatedwait time it would take for the offer fulfillment location to start tofix the vehicle. For example, the request may include an error log, adetermination that an Advanced Driver Assistance System (ADAS system) ismalfunctioning, a request for confirmation that the offer fulfillmentlocation is equipped to service ADAS system malfunctions, and a requestfor an estimated wait time. The offer fulfillment location device 107may determine the information and transmit the information directly tothe vehicle 103 or to the condition message provider.

The offer fulfillment location device 107 may include additionalhardware for completing a transaction, such as a computer attached to ascanner for scanning a barcode displayed on the mobile computing device188. The offer fulfillment location device 107 may transmit transactiondata to the condition message provider 101, which uses the transactiondata to improve the offers provided to the user 125 b. The offerfulfillment location device 107 may communicate with the network 105 viasignal line 131.

Example Vehicle Status Application

FIG. 2 is a block diagram illustrating an example vehicle device 200.The vehicle device 200 is part of the vehicle 103 and includes thevehicle status application 199, a processor 225, a memory 227, acommunication unit 245, a sensor 247, and an ADAS system 249. In someimplementations, the vehicle device 200 may include a special-purposecomputing device configured to provide some or all of the functionalitydescribed below with reference to FIG. 2. The components of the vehicledevice 200 are communicatively coupled by a bus 220.

The processor 225 includes an arithmetic logic unit, a microprocessor, ageneral-purpose controller, or some other processor array to performcomputations and provide electronic display signals to a display device.The processor 225 processes data signals and may include variouscomputing architectures including a complex instruction set computer(CISC) architecture, a reduced instruction set computer (RISC)architecture, a graphic processor unit (GPU) architecture or anarchitecture implementing a combination of instruction sets. AlthoughFIG. 2 includes a single processor 225, multiple processors 225 may beincluded. Other processors, operating systems, sensors, displays, andphysical configurations may be possible. In some implementations, theprocessor 225 is programmed to perform one or more blocks of the methods500, 600 described below with reference to FIGS. 5 and 6. The processor225 is coupled to the bus 220 for communication with the othercomponents via signal line 234.

The memory 227 stores instructions or data that may be executed by theprocessor 225. The instructions or data may include code for performingthe techniques described herein. The memory 227 may include a dynamicrandom access memory (DRAM) device, a static random access memory (SRAM)device, flash memory, or some other memory device. In someimplementations, the memory 227 also includes a non-volatile memory orsimilar permanent storage device and media including a hard disk drive,a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAMdevice, a DVD-RW device, a flash memory device, or some other massstorage device for storing information on a more permanent basis. Thememory 227 is coupled to the bus 220 for communication with the othercomponents via signal line 236.

As illustrated in FIG. 2, the memory 227 stores user data 291 andvehicle sensor data 293. The processor 225 may be communicativelycoupled to the memory 227 to access or execute the user data 291 or thevehicle sensor data 293.

The user data 291 includes information about the users, for example, aunique identifier (ID) for the user, a mobile computing device ID, andauthentication data that can be used for authentication. The vehiclestatus application 199 may receive a mobile computing device ID andcompare it to the user data 291 to authenticate the mobile computingdevice 188 and confirm that the mobile computing device 188 can haveaccess to the vehicle sensor data 293.

The vehicle sensor data 293 includes information about sensor readings.For example, the vehicle sensor data 293 includes sensor readingsrecorded at a particular time period. The vehicle sensor data 293 mayinclude a gas level, an oil level, a timer that measures how much timehas elapsed since different services were performed on the car, such asan oil change, checking the timing belt, etc. The vehicle statusapplication 199 may use the vehicle sensor data 293 to determine acurrent vehicle condition. In some implementations, the vehicle statusapplication 199 transmits the vehicle sensor data 293 to the journeyapplication 190 to determine a current vehicle condition.

The communication unit 245 can include hardware that transmits andreceives data to and from the vehicle 103. The communication unit 245 iscoupled to the bus 220 via signal line 238. In some implementations, thecommunication unit 245 includes a port for direct physical connection tothe network 105 or to another communication channel. For example, thecommunication unit 245 includes a USB, SD, CAT-5, or similar port forwired communication with the vehicle 103. In some implementations, thecommunication unit 245 includes a wireless transceiver for exchangingdata with the vehicle 103 or other communication channels using one ormore wireless communication methods, including IEEE 802.11, IEEE 802.16,Bluetooth®, or another suitable wireless communication method.

In some implementations, the communication unit 245 includes a cellularcommunications transceiver for sending and receiving data over acellular communications network including via short messaging service(SMS), multimedia messaging service (MMS), hypertext transfer protocol(HTTP), direct data connection, WAP, e-mail, or another suitable type ofelectronic communication. In some implementations, the communicationunit 245 includes a wired port and a wireless transceiver. Thecommunication unit 245 also provides other conventional connections tothe network 105 for distribution of files or media objects usingstandard network protocols including TCP/IP, HTTP, HTTPS, and SMTP, etc.

In some implementations, the communication unit 245 detects a presenceof the mobile computing device 188. For example, the communication unit245 detects the presence of the mobile computing device 188 via directpoint-to-point wireless communication between the vehicle 103 and themobile computing device 188 associated with the user. The wirelesscommunication may include Bluetooth®, Bluetooth® low energy (LE),near-field communication (NFC), etc. The communication unit 245 mayinclude an antenna for detecting the point-to-point wirelesscommunications. In some implementations, the vehicle 103 may includeadditional hardware for the wireless communication, for example, adongle with a direct current (DC) battery so that the battery of thevehicle 103 is not drained during wireless communication.

The sensor 247 can include a device that provides vehicle sensor data293 about sensor readings associated with the vehicle. The sensor 247may be communicatively coupled to an onboard computer of a vehicle. Thesensor 247 may include a gas gauge, an infrared detector, a motiondetector, a thermostat, etc. For example, the vehicle 103 may include asensor 247 for measuring one or more of a current time, a location(e.g., a latitude, longitude, and altitude of a location), anacceleration of a vehicle, a velocity of a vehicle, a fuel tank level ofa vehicle, a battery level of a vehicle, etc. Alternatively oradditionally, the sensor 247 can include a component or module ofanother system or device (e.g., radio, infotainment system, thermostat)that reports a status of the system or device to the vehicle device 200.In some implementations, the sensor 247 includes hardware for performinglocation detection, for example, a global positioning system (GPS),location detection through triangulation via a wireless network, etc.The sensor 247 provides information about at least one of a temperatureinside the vehicle, a temperature outside the vehicle, a position of theseats, a radio station, an audio program, a window level, a level ofillumination of car lights, a speed of windshield wipers, and otherparameters or settings associated with the vehicle and/or any system,subsystem, or device included in or communicatively coupled to thevehicle. The sensor 247 is coupled to the bus 220 via signal line 240.

The ADAS system 249 may include one or more advanced driver assistancesystems. Examples of an ADAS system 249 may include one or more of thefollowing elements of a vehicle 123: an adaptive cruise control (“ACC”)system; an adaptive high beam system; an adaptive light control system;an automatic parking system; an automotive night vision system; a blindspot monitor; a collision avoidance system; a crosswind stabilizationsystem; a driver drowsiness detection system; a driver monitoringsystem; an emergency driver assistance system; a forward collisionwarning system; an intersection assistance system; an intelligent speedadaption system; a lane departure warning system; a pedestrianprotection system; a traffic sign recognition system; a turningassistant; a wrong-way driving warning system; and a highly-autonomousADAS system that automatically drives the vehicle 103 to a destination(e.g., the offer fulfillment location). In some implementations, theADAS system 249 includes any hardware or software that controls one ormore operations of a vehicle to that the vehicle is “autonomous” or“semi-autonomous.”

In some implementations, the vehicle status application 199 includes acommunication module 202, an authentication module 204, a conditionmodule 206, and a user interface module 208.

The communication module 202 can include code and routines for handlingcommunications between the vehicle status application 199 and othercomponents of the vehicle device 200. In some implementations, thecommunication module 202 can include a set of instructions executable bythe processor 225 to provide the functionality described below forhandling communications between the vehicle status application 199 andother components of the vehicle device 200. In some implementations, thecommunication module 202 can be stored in the memory 227 of the vehicledevice 200 and can be accessible and executable by the processor 225.

The communication module 202 sends and receives data, via thecommunication unit 245, to and from one or more of the vehicle 103, themobile computing device 188, the cloud server 113, the condition messageprovider 101, the second server 198, the calendar server 111, and thesocial network server 109. For example, the communication module 202transmits a description of a current vehicle condition to the conditionmessage provider 101. In another example, the communication module 202receives authentication data from the mobile computing device 188authenticating the mobile computing device 188. The communication module202 is coupled to the bus 220 via signal line 203.

In some implementations, the communication module 202 transmitscommunications between the components of the vehicle device 200. Forexample, the communication module 202 may receive a determination of anoffer fulfillment location and navigation instructions to the offerfulfillment location from the mobile computing device 188 and/or thecondition module 206 and provide the navigation instructions to the ADASsystem 249, which navigates the vehicle to the offer fulfillmentlocation. In another example, the communication module 202 receives datafrom components of the vehicle status application 199 and stores thedata in the memory 227. For example, the communication module 202receives data from the sensor 247 and stores it as vehicle sensor data293 in the memory 227.

In some implementations, the communication module 202 may handlecommunications between components of the vehicle status application 199.For example, the communication module 202 receives user data 291 fromthe authentication module 204 and transmits the user data 291 to theuser interface module 208.

The authentication module 204 can include code and routines forauthenticating a mobile computing device 188. In some implementations,the authentication module 204 can include a set of instructionsexecutable by the processor 225 to provide the functionality describedbelow for authenticating the mobile computing device 188. In someimplementations, the authentication module 204 can be stored in thememory 227 of the vehicle device 200 and can be accessible andexecutable by the processor 225. The authentication module 204 iscoupled to the bus via signal line 205.

In some implementations, the authentication module 204 receives anotification from the communication unit 245 via the communicationmodule 202 that the communication unit 245 detects a presence of themobile computing device 188. The authentication module 204 may determinethat the user of the mobile computing device 188 intends to enter thevehicle 103. The mobile computing device 188 may provide authenticationdata to the vehicle device 200. For example, the authentication data mayinclude a mobile ID that identifies the mobile computing device 188. Inanother example, a user provides a pin number as authentication data.The authentication module 204 authenticates that the mobile computingdevice 188 is authorized to receive a current vehicle condition bycomparing the authentication data to the user data 291. For example, theauthentication module 204 compares the mobile ID to a mobile ID that ispart of the user data 291 to determine whether the identifiers match. Ifthe mobile identifiers match, the authentication module 204 may transmitan instruction to the condition module 206 via the communication module202 to provide a current vehicle condition to the mobile computingdevice 188. If the identifiers do not match, the authentication module204 may transmit a message to the mobile computing device 188 via thecommunication module 202 explaining that the authentication failed.

The condition module 206 can include code and routines for receivingvehicle sensor data 293 and determining a current vehicle condition thatis detrimental to operation of the vehicle. In some implementations, thecondition module 206 can include a set of instructions executable by theprocessor 225 to provide the functionality described below for receivingvehicle sensor data 293 and determining a current vehicle condition thatis detrimental to operation of the vehicle. In some implementations, thecondition module 206 can be stored in the memory 227 of the vehicledevice 200 and can be accessible and executable by the processor 225.The condition module 206 is coupled to the bus via signal line 207.

In some implementations, the condition module 206 receives the vehiclesensor data 293 from the sensor 247. For example, the condition module206 receives a charge percentage for a battery. In some otherimplementations, the condition module 206 receives vehicle sensor data293 from the second server 198. For example, the second server 198 mayinclude a camera that captures images of the vehicle 103 in a parkinglot and transmits the images to the vehicle 103.

The condition module 206 may determine, based on the vehicle sensor data293 associated with the vehicle, a current vehicle condition that isdetrimental to operation of the vehicle. For example, if the chargepercentage for the battery decreases until the battery no longer has acharge, the vehicle 103 stops operating. In another example, thecondition module 206 determines that the vehicle 103 has amalfunctioning part, such as a broken light, flat tire, ormalfunctioning windshield wiper. The condition module 206 transmits, viathe communication module 202, a description of the current vehiclecondition to a condition message provider 101. In some implementations,the condition module 206 also transmits, via the communication module202, the description of the current vehicle condition to the conditionmessage provider 101.

In some implementations, the condition module 206 selects an offerfulfillment location from a set of vehicle service providers. Thecondition module 206 may receive information about each of the set ofvehicle service providers that includes a determination about whethereach of the set of vehicle service providers is equipped to fix thecurrent vehicle condition and a wait time associated with each of theset of vehicle service providers. The condition module 206 may determinethe offer fulfillment location based on the information. For example,the condition module 206 may determine that the vehicle service providerwith the shortest wait and a confirmation that the vehicle serviceprovider is equipped to fix the current vehicle condition should beselected as the offer fulfillment location. In some implementations, thecondition module 206 also selects the offer fulfillment location basedon the distance between the vehicle 103 and the offer fulfillmentlocation such that the shortest time to having the vehicle serviced isselected. For example, the condition module 206 selects the offerfulfillment location that is closest to the vehicle 103 with a wait timethat is 10 minutes longer than the next closest offer fulfillmentlocation that has a two-minute wait time, but takes 20 more minutes toreach. In some implementations, the condition module 206 transmits amessage to the offer fulfillment location device 107 to reserve a spotto be serviced at the offer fulfillment location. Although these stepsare described as being performed by a component of the vehicle statusapplication 199, these steps could be performed by the journeyapplication 190 on the mobile computing device 188, and/or theadvertisement selection application 104 on the condition messageprovider 101.

The user interface module 208 can include code and routines forgenerating graphical data for providing user interfaces. In someimplementations, the user interface module 208 can include a set ofinstructions executable by the processor 225 to provide thefunctionality described below for generating graphical data forproviding user interfaces. In some implementations, the user interfacemodule 208 can be stored in the memory 227 of the vehicle device 200 andcan be accessible and executable by the processor 225. The userinterface module 208 is coupled to the bus 220 via signal line 209.

The vehicle status application 199 may include a user interface module208, for example, if the vehicle device 200 includes an in-dash device200 in the vehicle 103. In some implementations, the user interfacemodule 208 generates graphical data for displaying information about acurrent vehicle condition, a successful or unsuccessful authenticationattempt, a detection of a presence of the mobile computing device 188,etc. The user interface module 208 may also generate graphical data fordisplaying a user interface for a user to provide user data 291. In someother implementations, the user interface module 208 is optional and allinteractions for configuring settings for the vehicle status application199 may be made using the journey application 190 on the mobilecomputing device 188.

Example Journey Application

FIG. 3 is a block diagram illustrating an example mobile computingdevice 188. The mobile computing device 188 may include a journeyapplication 190, a processor 325, a memory 327, a display 329, acommunication unit 345, and a sensor 347. In some implementations, themobile computing device 188 may include a special-purpose computingdevice configured to provide some or all of the functionality describedbelow with reference to FIG. 3. The components of the mobile computingdevice 188 are communicatively coupled by a bus 320.

The processor 325 is coupled to the bus 320 via signal line 336. Thememory 327 is coupled to the bus 320 via signal line 338. The display329 is coupled to the bus 320 via signal line 340. The communicationunit 345 is coupled to the bus 320 via signal line 342. The sensor 347is coupled to the bus 320 via signal line 344. The processor 325, thememory 327, and the communication unit 345 are similar to the processor225, the memory 227, and the communication unit 245 discussed above withreference to FIG. 2 and therefore will not be discussed in detail below.In addition to the sensor 247 described above with reference to FIG. 2,the sensor 347 may include a speaker. For example, the speaker mayprovide audio for turn-by-turn directions generated by the journeyapplication 190.

The memory 327 may include user data 291, vehicle sensor data 293, andjourney data 299. The user data 291 and the vehicle sensor data 293 arediscussed in detail above.

The journey data 299 includes information about the user's historicaljourneys, such as start points, destinations, durations, journeysassociated with historical journeys, etc. For example, the journey data299 could include a log of all locations visited by the vehicle 103, alllocations visited by the user 125 (e.g., locations associated with boththe vehicle 103 and the mobile computing device 188), and all locationsrequested by the user 125. The log may also include times associatedwith the historical journeys, for example, a time that a user traveledto various points or requested information about a location.

The display 329 can include hardware for displaying graphical data fromthe journey application 190. For example, the display 329 rendersgraphics for displaying a user interface that displays offer data,mitigating action plan data, coupons, driving directions, calendarinformation, and settings.

The journey application 190 includes a communication module 302, aregistration module 304, a condition module 306, a journey module 308, amap module 310, and a user interface module 312.

The communication module 302 can include code and routines for handlingcommunications between the journey application 190 and other componentsof the mobile computing device 188. In some implementations, thecommunication module 302 can include a set of instructions executable bythe processor 325 to provide the functionality described below forhandling communications between the journey application 190 and othercomponents of the mobile computing device 188. In some implementations,the communication module 302 can be stored in the memory 327 of themobile computing device 188 and can be accessible and executable by theprocessor 325. The communication module 302 is coupled to the bus 320via signal line 303.

The communication module 302 sends and receives data, via thecommunication unit 345, to and from one or more of the mobile computingdevice 188, the vehicle 103, the cloud server 113, the condition messageprovider 101, the offer fulfillment location device 107, the secondserver 198, the calendar server 111, and the social network server 109.For example, the communication module 302 receives offer data andmitigating action plan data from the condition message provider 101.

In some implementations, the communication module 302 receives data fromcomponents of the mobile computing device 188 and stores the data in thememory 327. For example, the communication module 302 receives thelocation of the vehicle 103 as a function of time, and stores it asjourney data 299 in the memory 327. In some implementations, thecommunication module 302 may handle communications between components ofthe journey application 190. For example, the communication module 302receives user input from the user interface module 312 and transmits theuser input to the registration module 304, which adds the user input tothe user data 291 that is stored in the memory 327.

The registration module 304 can include code and routines forregistering a user. In some implementations, the registration module 304can include a set of instructions executable by the processor 325 toprovide the functionality described below for registering the user. Insome implementations, the registration module 304 can be stored in thememory 327 of the mobile computing device 188 and can be accessible andexecutable by the processor 325. The registration module 304 is coupledto the bus 320 via signal line 305.

The registration module 304 may receive information about a user, forexample, a name, a password, etc. The registration module 304 creates auser account by assigning a user ID to the user, a mobile ID to themobile computing device 188 associated with the user, and a vehicle IDto the vehicle 103 associated with the user. Multiple users may beassociated with a single vehicle, for example, where multiple familymembers use the same car. The vehicle ID may include the vehicleidentification number (VIN) for the vehicle 103. In someimplementations, the registration module 304 transmits the user ID, themobile ID, and the vehicle ID to the cloud server 113 to be associatedwith the journey data 114. The registration module 304 may also transmitthe user ID, the mobile ID, and the vehicle ID to the condition messageprovider 101 to store the data in the datastore 102.

In some implementations, the registration module 304 manages rewards forthe user. For example, the registration module 304 may add points to theuser account each time the user redeems a coupon or spends money at oneof the offer fulfillment locations. The user may redeem the points for areward. For example, for every $50 spent at an offer fulfillmentlocation, the registration module 304 may reward the user with creditfor $1 at the offer fulfillment location.

In some implementations, the registration module 304 receivesinformation for linking the user's social network account(s) andcalendar application with the journey application 190. For example, theregistration module 304 may instruct the user interface module 312 togenerate graphical data for displaying a user interface where the usercan identify the social network application or the calendar applicationand provide a username and password for accessing the accounts.

The condition module 306 can include code and routines for transmittinga current vehicle condition to the condition message provider 101. Insome implementations, the condition module 306 can include a set ofinstructions executable by the processor 325 to provide thefunctionality described below for transmitting the current vehiclecondition to the condition message provider 101. In someimplementations, the condition module 306 can be stored in the memory327 of the mobile computing device 188 and can be accessible andexecutable by the processor 325. The condition module 306 is coupled tothe bus 320 via signal line 307.

In some implementations, the condition module 306 receives vehiclesensor data 293 associated with the vehicle 103 from the vehicle 103 orthe second server 198 and determines a current vehicle condition that isdetrimental to the operation of the vehicle 103. In some otherimplementations, the condition module 306 receives the current vehiclecondition from the vehicle status application 199 and transmits thecurrent vehicle condition to the condition message provider 101.

The journey module 308 can include code and routines for determining ajourney. In some implementations, the journey module 308 can include aset of instructions executable by the processor 325 to provide thefunctionality described below for determining the journey. In someimplementations, the journey module 308 can be stored in the memory 327of the mobile computing device 188 and can be accessible and executableby the processor 325. The journey module 308 is coupled to the bus 320via signal line 309.

The journey module 308 determines a journey for the vehicle 103 based onhistorical journey data including a most frequently traveled route for acurrent location of the vehicle 103 at a current time. For example, thejourney module 308 determines, based on the vehicle 103 being located indowntown Redwood City, Calif. at 7:30 p.m. and the user most frequentlytravelling from work to home, that the user is about to travel from workto home.

In some implementations, the journey module 308 receives social networkdata 110 from the social network server 109 and calendar data 112 fromthe calendar server 111 that the journey module 308 uses to determine anendpoint for the journey. For example, where the user tweets about goingto a concert, the journey module 308 may determine, based on the tweetand the vehicle's 103 proximity to the concert venue, that the user isgoing to the concert.

In some implementations, the journey module 308 receives map data fromthe map module 310 or the second server 198 that the journey module 308uses to determine an endpoint. For example, where the user requests amap from a current location to a library, the journey module 308determines that the library is the endpoint of the journey.

The map module 310 can include code and routines for generating a map.In some implementations, the map module 310 can include a set ofinstructions executable by the processor 325 to provide thefunctionality described below for generating the map. In someimplementations, the map module 310 can be stored in the memory 327 ofthe mobile computing device 188 and can be accessible and executable bythe processor 325. The map module 310 is coupled to the bus 320 viasignal line 311.

In some implementations, the map module 310 receives user input from theuser interface module 312 via the communication module 302 requestingdirections from a current location to an endpoint. The endpoint mayinclude the offer fulfillment location. The map module 310 may generatethe map or request map data from the second server 198.

The map module 310 may generate turn-by-turn directions. For example,the map module 310 may receive a notification from the user interfacemodule 312 that the user accepted one or more steps of a mitigatingaction plan that includes an offer fulfillment location. The map module310 may identify the offer fulfillment location from the mitigatingaction plan and generate turn-by-turn directions from a current locationof the vehicle 103 to the offer fulfillment location.

The user interface module 312 can include code and routines forgenerating graphical data for providing user interfaces. In someimplementations, the user interface module 312 can include a set ofinstructions executable by the processor 325 to provide thefunctionality described below for generating graphical data forproviding user interfaces. In some implementations, the user interfacemodule 312 can be stored in the memory 327 of the vehicle device 200 andcan be accessible and executable by the processor 325. The userinterface module 312 is coupled to the bus 320 via signal line 313.

In some implementations, the user interface module 312 generates a userinterface for registering a user. For example, the user interfaceincludes fields for the user to input a name, an email address, apassword, a username, credit card information, etc. The user interfacemay also include sections for associating the journey application 190with the vehicle 103. The user interface module 312 may transmit theuser input to the registration module 304 via the communication module302. In some implementations, the user interface module 312 generates auser interface that allows a user to turn on an antennae on the mobilecomputing device 188 so that the mobile computing device 188 may bedetected by the vehicle 103.

The user interface module 312 receives instructions from the conditionmessage provider 101 via the communication module 302 to generategraphical data for displaying mitigating action plan data and offer dataon a display 329 of the mobile computing device 188. For example, wherethe current vehicle condition includes needing an oil change, the userinterface module 312 may generate graphics for displaying informationabout an offer fulfillment location that can perform the oil change andan offer for a donut and coffee for a user of the vehicle 103. The offerdata may include an offer with an expiration period. For example, theoffer may expire ten minutes after an estimated time that it takes thevehicle 103 to travel to the offer fulfillment location. If the offerexpires, the user interface module 312 may display a notice ofexpiration. In some implementations, the user interface module 312receives instructions from the map module 310 to generate graphical datafor displaying a map from the current location of the vehicle 103 to theoffer fulfillment location.

After the user arrives with the vehicle 103 at the offer fulfillmentlocation, the condition message provider 101 may transmit instructionsto the user interface module 312 via the communication module 302 todisplay graphical data for displaying a coupon. For example, the userinterface module 312 generates graphical data for a coupon that includesdisplaying a description of the offer and a barcode, a quick response(QR) code, a uniform resource locator (URL), etc. The coupon may alsoinclude an expiration time. For example, the coupon may expire 30minutes after a user arrives at a gas station, two hours after a userarrives at the mechanic's, etc. If the coupon expires, the userinterface module 312 may display a notice of expiration. The display 329of the mobile computing device 188 displays the coupon.

The user may present the mobile device 188 at the offer fulfillmentlocation where an offer fulfillment location device 107 may scan thebarcode or the QR code to identify the terms of the offer. The offerfulfillment location device 107 may transmit the information about theoffer to the advertisement selection application 104. The informationabout the offer may include a user ID, a mobile ID, and a vehicle ID,which the advertisement selection application 104 may use to determinehow to successfully get the user (or similar users) to redeem offers inthe future.

Example User Interface

FIG. 4A is a graphic representation of an example user interface 400 fordisplaying mitigating action plan data and offer data that includes afuel offer reward. In this example, the user interface module 312generates graphical data for displaying a user interface 400 thatincludes mitigating action plan data and an offer 405, an expiration forthe offer 410, and a “Get Directions” icon 415. The mitigating actionplan data is refueling at the gas station at 25 Washington St. The offerdata includes an offer of a free 20 ounce soft drink. The expiration forthe offer 410 occurs 13 minutes from the time that the offer isdisplayed. The “Get Directions” icon 415, when selected, causes the userinterface module 312 to transmit a request to the map module 310 via thecommunication module 302 that the map module 310 generate directions.

FIG. 4B is a graphic representation of an example user interface 450 fordisplaying offer data that includes a coupon. In this example, the userinterface module 312 generates graphical data for displaying a userinterface 450 that includes an offer 455, a coupon 460, and a “CheckRewards” icon 465. The offer 455 includes instructions for how to redeemthe coupon. In this example, the user shows the barcode displayed on themobile computing device 188 to redeem the offer for the free 20 ouncesoft drink. The coupon 460 includes both an expiration time, which is 29minutes from the current time, and a barcode for redeeming the offer.The “Check Rewards” icon 465, when selected, causes the user interfacemodule 312 to transmit a request to the registration module 304 via thecommunication module 302 to provide instructions to the user interfacemodule 312 to display graphical data that includes information about theuser's rewards. For example, the information about the user's rewardscould include how many points the user has accrued and how many rewardsare available for redemption.

Example Methods

FIG. 5 is a flowchart of an example method 500 for generating a wirelessincentive by displaying mitigating action plan data and offer data. Insome implementations, the method 500 may be performed by modules of thejourney application 190 stored on the mobile computing device 188 inFIGS. 1 and 3 or modules of the vehicle status application 199 stored onthe vehicle 103 in FIGS. 1 and 2. For example, the method 500 may beperformed by a condition module 206 of the vehicle status application199 in FIG. 1 or 2, a condition module 306 of the journey application190, and/or a communication module 302 of the journey application 190.

In some implementations, one or more blocks of the method 500 may beperformed by a processor-based computing device programmed to performthe one or more blocks of the method 500. For example, one or more stepsof the method 500 may be performed by a mobile computing deviceprogrammed to perform the one or more steps of the method 500.

At block 502, a current vehicle condition that is detrimental tooperation of the vehicle is determined based on vehicle sensor data. Forexample, the condition module 206 of the vehicle status application 199or the condition module 306 of the journey application 190 determines,based on vehicle sensor data 293, the current vehicle condition that isdetrimental to operation of the vehicle. The current vehicle conditionmay include, for example, a problem with the vehicle that should beanalyzed by a mechanic, such as a check engine light.

At block 504, a description of the current vehicle condition may betransmitted to a condition message provider. For example, thecommunication module 302 of the journey application 190 may transmit thedescription of the current vehicle condition to the condition messageprovider 101. The communication module 302 may receive the currentvehicle condition from the condition module 206 of the vehicle statusapplication 199 or the condition module 306 of the journey application190.

At block 506, a condition message is received that includes offer dataand mitigating action plan data describing one or more steps configuredto alter the current vehicle condition. For example, the communicationmodule 202 may receive the condition message from the condition messageprovider 101. The condition message may include an offer for a 25%discount on the cost of a mechanic checking the engine and a mitigatingaction plan that includes travelling to the mechanic's shop.

FIG. 6 is a flowchart of another example method 600 for generating awireless incentive. In some implementations, the method 600 may beperformed by modules of the journey application 190 stored on the mobilecomputing device 188 of FIGS. 1 and 3. For example, the journeyapplication 190 may include a communication module 302, a conditionmodule 306, a journey module 308, and a map module 310.

In some implementations, one or more blocks of the method 600 may beperformed by a processor-based computing device programmed to performthe one or more blocks of the method 600. For example, one or more stepsof the method 600 may be performed by a mobile computing deviceprogrammed to perform the one or more steps of the method 600.

At block 602, a journey is determined for a vehicle based on historicaljourney data including a most frequently traveled route for a currentlocation of the vehicle at a current time. The journey module 308 maydetermine the journey for the vehicle 103 based on historical journeydata including the most frequently traveled route for the currentlocation of the vehicle at the current time. For example, the journeymodule 308 may determine that the vehicle 103 is travelling from work toa restaurant that the user eats at every Monday at 11:30 a.m.

At block 604, a current vehicle condition that is detrimental tooperation of the vehicle is received from the vehicle. The communicationmodule 302 may receive, from the vehicle 103, the current vehiclecondition. For example, the current vehicle condition may be that thebattery has a charge of less than 10%.

At block 606, a description of the current vehicle condition istransmitted to a condition message provider. For example, thecommunication module 302 transmits the description of the currentvehicle condition to the condition message provider 101.

At block 608, a condition message that includes offer data andmitigating action plan data describing one or more steps configured toalter the current vehicle condition is received from the conditionmessage provider, where the mitigating action plan data includes anoffer fulfillment location that is part of the journey and the offerdata includes an offer for a good or service associated with the offerfulfillment location. For example, the communication module 302receives, from the condition message provider 101, the conditionmessage. The offer may be for a free candy bar at a charging stationthat is on the way from the user's work to the restaurant.

At block 610, the offer data and the mitigating action plan data aredisplayed on a display of the mobile computing device. The display 329of the mobile computing device 188 may display the offer data and themitigating action plan data. For example, the display 329 includes textoffering the free candy bar and the mitigating action plan data includesidentification of the charging station where the user can redeem theoffer for the free candy bar.

At block 612, turn-by-turn navigation instructions are provided duringthe journey from the current location to the offer fulfillment location.The map module 310 may generate and the communication module 302 mayprovide the turn-by-turn navigation instructions during the journey fromthe current location to the offer fulfillment location. In someimplementations, the map module 310 may generate the turn-by-turnnavigation instructions in response to receiving user input confirmingthat the user would like directions to the offer fulfillment location.

The descriptions of the specification can also relate to an apparatusfor performing the operations herein. This apparatus may include theuser of a special-purpose or general-purpose computer including variouscomputer hardware or software modules. Implementations described hereinmay be implemented using a computer program stored in the computer. Sucha computer program may be stored in a non-transitory computer-readablestorage medium, including, but is not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic disks,read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, flash memories including USB keyswith non-volatile memory, or any type of media suitable for storingelectronic instructions, each coupled to a computer system bus.

The processors described herein may be programmed to perform one or moreblocks of the methods 500, 600. The processor programmed to perform oneor more blocks of the methods 500, 600 may be a special-purposecomputing device.

The specification can take the form of some entirely hardwareimplementations, some entirely software implementations, or someimplementations containing both hardware and software elements. In someimplementations, the specification is implemented in software, whichincludes, but is not limited to, firmware, resident software, microcode,etc.

Furthermore, the description can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer-readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

A data processing system suitable for storing or executing program codewill include at least one processor coupled directly or indirectly tomemory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including, but not limited to, keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem, and Ethernet cards are just a few of thecurrently available types of network adapters.

Finally, the algorithms and displays presented herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may be used with programs in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the specification is not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the specification as described herein.

The foregoing description of the implementations of the specificationhas been presented for the purposes of illustration and description. Itis not intended to be exhaustive or to limit the specification to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of thedisclosure be limited not by this detailed description, but rather bythe claims of this application. As will be understood by those familiarwith the art, the specification may be embodied in other specific formswithout departing from the spirit or essential characteristics thereof.Likewise, the particular naming and division of the modules, routines,features, attributes, methodologies, and other aspects are not mandatoryor significant, and the mechanisms that implement the specification orits features may have different names, divisions, or formats.Furthermore, the modules, routines, features, attributes, methodologies,and other aspects of the disclosure can be implemented as software,hardware, firmware, or any combination of the three. Also, wherever acomponent, an example of which is a module, of the specification isimplemented as software, the component can be implemented as astandalone program, as part of a larger program, as a plurality ofseparate programs, as a statically or dynamically linked library, as akernel-loadable module, as a device driver, or in every and any otherway known now or in the future to those that practice the art ofcomputer programming. Additionally, the disclosure is in no way limitedto implementations in any specific programming language, or for anyspecific operating system or environment. Accordingly, the disclosure isintended to be illustrative, but not limiting, of the scope of thespecification, which is set forth in the following claims.

What is claimed is:
 1. A method comprising: determining, based onvehicle sensor data associated with a vehicle, a current vehiclecondition associated with the vehicle that is detrimental to operationof the vehicle; and receiving a condition message that includesmitigating action plan data describing one or more steps configured toalter the current vehicle condition, the mitigating action plan dataincluding an offer fulfillment location included in a route of a journeyfor the vehicle.
 2. The method of claim 1, further comprising:transmitting the vehicle sensor data to a set of vehicle serviceproviders with a request for information; receiving information abouteach of the set of vehicle service providers; and selecting the offerfulfillment location from the set of vehicle service providers based onthe information about each of the set of vehicle service providers. 3.The method of claim 2, wherein the information about each of the set ofvehicle service providers includes a determination about whether each ofthe set of vehicle service providers is equipped to fix the currentvehicle condition and a wait time associated with each of the set ofvehicle service providers.
 4. The method of claim 1, further comprising:determining turn-by-turn navigation instructions based on the mitigatingaction plan data and user input indicating that a user accepts the oneor more steps of the mitigating action plan data; and providing theturn-by-turn navigation instructions during the journey from a currentlocation to the offer fulfillment location, wherein the journey includesa start point and end point determined prior to receipt of themitigating action plan data and the mitigating action plan data isconfigured so that the offer fulfillment location is between the startpoint and the end point.
 5. The method of claim 1, automaticallynavigating the vehicle to the offer fulfillment location.
 6. The methodof claim 1, further comprising determining the journey for the vehiclebased on a most frequently traveled route for a current location at acurrent time.
 7. The method of claim 1, further comprising: detecting apresence of the vehicle that is paired with a mobile computing device;and receiving the vehicle sensor data from the vehicle; and whereindetermining the current vehicle condition is performed by the mobilecomputing device.
 8. The method of claim 7, further comprising,responsive to detecting the presence of the vehicle that is paired withthe mobile computing device, determining that the journey begins.
 9. Themethod of claim 1, wherein: the vehicle detects a presence of a mobilecomputing device that is paired with the vehicle; and determining thecurrent vehicle condition is performed by the vehicle.
 10. The method ofclaim 9, further comprising providing authentication data to the vehicleto authenticate that the mobile computing device is authorized toreceive the current vehicle condition from the vehicle.
 11. The methodof claim 10, wherein the vehicle detects the presence of the mobilecomputing device using direct point-to-point wireless communicationbetween the vehicle and the mobile computing device associated with auser.
 12. The method of claim 1, further comprising sending fulfillmenttransaction data to a condition message provider.
 13. The method ofclaim 1, further comprising registering a user, including importinginformation from at least one of a social network account associatedwith the user and an online calendar account associated with the user.14. The method of claim 13, wherein determining the journey for thevehicle is further based on the information from at least one of thesocial network account associated with the user and the online calendaraccount associated with the user.
 15. A non-transitory computer-readablemedium having computer instructions stored thereon that are executableby a processing device to perform or control performance of operationscomprising: determining, based on vehicle sensor data associated with avehicle, a current vehicle condition that is detrimental to operation ofthe vehicle; and receiving a condition message that includes mitigatingaction plan data describing one or more steps configured to alter thecurrent vehicle condition, the mitigating action plan data including anoffer fulfillment location included in a route of a journey for thevehicle.
 16. The non-transitory computer-readable medium of claim 15,the operations further comprising: transmitting the vehicle sensor datato a set of vehicle service providers with a request for information;receiving information about each of the set of vehicle serviceproviders; and selecting the offer fulfillment location from the set ofvehicle service providers based on the information about each of the setof vehicle service providers.
 17. The non-transitory computer-readablemedium of claim 15, the operations further comprising: determiningturn-by-turn navigation instructions based on the mitigating action plandata and user input indicating that a user accepts the one or more stepsof the mitigating action plan data; and providing the turn-by-turnnavigation instructions during the journey from a current location tothe offer fulfillment location.
 18. The non-transitory computer-readablemedium of claim 15, the operations further comprising determining thejourney for the vehicle based on historical journey data describing amost frequently traveled route for a current location of the vehicle ata current time.
 19. The non-transitory computer-readable medium of claim15, the operations further comprising: displaying the mitigating actionplan data on a display of a mobile computing device; responsive to thevehicle arriving at the offer fulfillment location, receiving graphicaldata that displays a barcode; and displaying the barcode on the displayof the mobile computing device.
 20. A system comprising: a vehiclecomprising a vehicle status application stored on an onboard computer ofthe vehicle, the vehicle status application including instructions that,when executed by the onboard computer, cause the onboard computer to:determine, based on vehicle sensor data associated with the vehicle, acurrent vehicle condition associated with the vehicle that isdetrimental to operation of the vehicle; and receive a condition messagethat includes mitigating action plan data describing one or more stepsconfigured to alter the current vehicle condition, the mitigating actionplan data including an offer fulfillment location included in a route ofa journey for the vehicle.